home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #186 (199x)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #186 (199x)(Rhein-Sieg-Soft).adf
/
FUPL_V1.0d
/
FUPL.dok
< prev
next >
Wrap
Text File
|
1992-08-10
|
43KB
|
981 lines
****************************** FUPL.dok *****************************
Bedienungsanleitung für
-----------------------
FUPL V1.0d
----------
den Funktionenplotter
---------------------
1. Copyright
2. Einführung
3. Programmbeschreibung
3.1 Was kann FUPL ?
3.2 History
4. Bedienung
4.1 Allgemeine Hinweise
4.2 Ortskurven, Tips zur Darstellung
4.3 Die Befehle + Übersicht
4.4 Einarbeitung anhand 'Fupl.bsp'
5. Ärger mit FUPL
1. Copyright
------------
FUPL ist SHAREWARE, das bedeutet in diesem Fall, jeder kann es frei
kopieren und benutzen, nur sollte der Anwender, der FUPL öfters nutzt
oder der meint, die Autoren hätten für dieses tolle Programm eine Be-
lohnung verdient, uns einen Betrag seiner Wahl zukommen lassen !
So ist auch für uns die Motivation gewährleistet, FUPL zu verbessern
und zu erweitern.
Shareware bedeutet weiterhin, daß das Copyright und ALLE damit ver-
bundenen Rechte weiterhin bei den Autoren Martin Rappold und Ingo
Teckenburg (das sind wir!) liegen.
FUPL ist frei kopierbar, solange folgende Dateien UNVERÄNDERT und
VOLLSTÄNDIG (im Siebener-Pack) weitergegeben werden:
1. FUPL das Hauptprogramm
2. FUPL.info das Icon dazu
3. FUPL.dok diese Anleitung
4. FUPL.dok.info das Icon dazu
5. Fupl-Symtab eine Hilfsdatei
6. Fupl.bsp1 Beispieldatei Nr1
7. Fupl.bsp2 Beispieldatei Nr2
FUPL V1.0d darf auf Disketten der folgenden SERIEN vertrieben werden:
1. Time
2. Kickstart
3. Franz
Andere Serien, Diskettenmagazine oder sonstige "Herausgeber", die FUPL
V1.0d vertreiben wollen, brauchen die SCHRIFTLICHE Genehmigung von un-
serer Seite !
Also, VORHER anfragen !
FUPL V1.0d wurde erstellt mit KICK-Pascal 2.0 von MAXON Computer
2. Einführung
----------
Wer kennt das Problem nicht :
Man diskutiert eine Funktion (ob in der Schule oder im Studium), d.h.
man untersucht, welche Nullstellen, Wendepunkte, Minima, Maxima, Un-
endlichkeitsstellen, usw. vorhanden sind, und dann soll man sie
zeichnen.
Jetzt wäre es doch ganz nett, wenn man kontrollieren könnte, ob die
Funktion wirklich so aussieht, wie man sie berechnet hat, oder ?
Da heutzutage kein Mensch mehr im Kopf rechnet, nimmt man also seinen
Computer und ein Programm, das Funktionen berechnen und zeichnen
kann.
Aber HALT !!!
Nicht irgendein Programm, sondern FUPL !!!
Was spricht für FUPL ?
- es ist Shareware, kostet also weder 40 noch 80 DM.
- Man kann FUPL ausprobieren und wenn's einem nicht gefällt ...
.. Autoren anschreiben und sagen warum !
- es hat einen enorm großen Funktionumfang, und damit wären wir
auch schon beim nächsten Punkt :
3.1 Was kann FUPL ?
-------------------
FUPL ist in der Lage, für beliebige Funktionen Wertetabellen zu er-
stellen und diese als Funktionengraph anzuzeigen.
Dabei sind alle wichtigen Darstellungsarten wie
-linear,
-logarithmisch(einfach- und doppelt-),
-Real-/Imaginärteil
-Betrag,
-Phase oder
-ORTSKURVE (komplexe Funktionen und Ortskurve siehe 4.2)
möglich.
Folgende Funktionen stehen zur Verfügung:
- die vier Grundrechenarten (+,-,*,/)
- trigonometrische Funktionen
(sin,cos,tan,cotan,arcsin,arccos,arctan,arccotan)
- hyperbolische Funktionen
(sinh,cosh,tanh,cotanh,arcsinh,arccosh,arccotanh)
- ln(x), log(x), e^x (e hoch x) und alle anderen Potenzen (z.B. x^2)
- sqrt(x) (einfache Wurzel von x)
- Pi
und zwar im Rellen wie im Komplexen.
Es ist möglich zu differenzieren, zu integrieren und Nullstellen zu
berechnen.
Die Wertetabellen können ausgedruckt werden.
FUPL arbeitet auch als Taschenrechner, wiederum reell und komplex,
einfach Ausdruck hinschreiben, z.B. 5*6 ; (1/8)*4 ; 5*i*(3-2*i)
DIE STÄRKE VON FUPL IST EIGENTLICH DIE DARSTELLUNG KOMPLEXER FUNKTIO-
NEN ALS ORTSKURVE, REAL- UND IMAGINÄRTEIL, AMPLITUDENGANG, PHASENGANG
Wer von den obigen Begriffen noch nichts gehört hat, kann FUPL auch
als ganz einfachen Funktionenplotter benutzen.
Für die "Profis" unter Euch :
Schaut mal im Kapitel 4.2 (Ortskurven) nach !
FUPL läuft außer in PAL- auch in NTSC-Auflösung, aber wer im deutsch-
sprachigen Raum muß sich schon mit einer Zeilenlänge von 200 begnügen!
3.2 History
-----------
FUPL wird in einer deutschen Version V1.0d vertrieben mit deutschspra-
chiger Anleitung (deshalb das d) und in einer deutsch/englischen Ver-
sion V1.0 mit zusätzlicher englischen Anleitung (nur FISH-Disk).
Warum ist FUPL so wie es ist ?
Nun, entstanden ist FUPL ursprünglich 1991 während unseres Studiums
im Rahmen eines Software-Labors auf MS-DOS Rechnern unter Verwendung
von Turbo-Pascal.
Da Martin und ich aber einen Amiga besitzen und wir die Früchte unse-
rer Arbeit auch kosten wollten, haben wir beide also die Quelltexte
für den Amiga modifiziert, die ganze graphische Ausgabe neu geschrie-
ben und noch einige anwendungsfreundlichere Änderungen vorgenommen.
Nur die Rumpfstruktur ist noch von der Ur-Version übrig geblieben.
( Hey, Darius, vielen Dank für deine Quelltexte )
Noch mal ganz neu schreiben wollten wir das Programm nicht, so daß
es immer noch Befehlszeilen orientiert arbeitet und über die Tastatur
zu bedienen ist. (Beim Amiga eigentlich ein Frevel)
4.1 Allgemeine Hinweise
-----------------------
FUPL läuft unter Kickstart 1.3 und 2.0.
Er benötigt die mathtrans.library und das Printer-device (letzteres
nur, wenn Tabellen ausgedruckt werden sollen).
FUPL wird gestartet, indem man sein Icon anklickt, dann muß aber die
Datei "Fupl-Symtab" in demselben Verzeichnis (Schublade) wie FUPL
stehen.
Der Name "Fupl-Symtab" darf NICHT verändert werden !
FUPL kann auch vom CLI/SHELL gestartet werden, dann MUß jedoch der
Stack auf 7000 gesetzt und der Pfad für "Fupl-Symtab" (nur das Ver-
zeichnis) angegeben werden, also z.B.:
"1.Shell>C:stack 7000"
"1.Shell>run PD-Disk:fupl PD-Disk:"
Dieses Program ist befehlszeilenorientiert, soll heißen, die Befehle
(s. 4.3) werden über Tastatur eingegeben oder aus einer entsprechend
vorbereiteten Textdatei eingelesen (!LIES).
Die Laufvariable ist standartmäßig das X .
Alle Funktionen sind somit abhängig von x [y=f(x)] !
Es ist aber auch möglich, sich eine andere Laufvariable zu definieren
(!DEF).
i und j dürfen NICHT als Variablen verwendet werden, da diese die
komplexen Zahlen darstellen.
Variablen dürfen Buchstaben + Zahlen sein ( Funk9, G12, Const).
Fupl unterscheidet nicht in Groß-/Kleinschreibung
Es gilt Punktrechnung vor Strichrechnung, das '*' muß aber immer hin-
geschrieben werden (8*x, nicht 8x), ansonsten ist die Schreibweise
der Funktionen wie gewohnt und ohne Zwischenräume.
( Im Zweifelsfall Klammern setzen )
Die Befehlszeilen können maximal 80 Zeichen lang sein, also 1 Zeile.
Pfeil hoch/runter zeigt die bisher eingegebenen Befehlszeilen an,
diese sind mit Pfeil links/rechts edierbar !
Nach dem Verlassen von FUPL kann es vorkommen, daß nicht der gesamte
Speicher wieder freigegeben wird ! (ist zwar scheiße, läßt sich aber
nicht ändern)
Nach Benutzung von Systemfunktionen (Sin,Cos,Ln,..) und dem damit ver-
bundenen Zugriff auf die mathtrans.library fehlen 3.4 KByte, wenn man
dann noch Wertetabellen ausdruckt (printer-device), fehlen zusätzlich
nochmal 34 KByte !
Es werden also vom Betriebssystem einige Sachen resident in den Spei-
cher geladen, die natürlich Platz belegen.
Wenn beim zweiten Start von FUPL beide Sachen schon resident geladen
sind, gibt FUPL anschließend seinen benötigten Speicher vollständig
wieder frei.
4.2 Ortskurven, Tips zur Darstellung
------------------------------------
Ich setze voraus, daß die komplexen Zahlen ein Begriff sind, wenn
nicht, tut es mir leid, aber einen Einführungskurs gebe ich nicht.
Also, wie bekannt, gibt es die komplexe Zahlenebene, in denen die
Zahlen aus Real- und Imaginärteil bestehen.
FUPL akzeptiert als Zeichen für den Imaginärteil das i und das j.
( Die Mathematik benutzt das i, wir als Elektrotechniker das j )
So gibt es z.B. 7+9*i oder 2-1.5*j als komplexe Zahlen.
Das '*' ist wichtig, denn 5i erkennt FUPL nicht, das "mal" muß
hingeschrieben werden !
Es sind alle Funktionen erlaubt, auch alle trigonometrischen und
hyperbolischen ( sinh(2+x*j) ).
Komplexe Funktionen können nicht integriert oder differenziert werden
Auch Nullstellenbestimmung geht nicht.
Nun hat das noch nicht viel mit Funktionen zu tun, aber wenn man das
x als Kreisfrequenz w (w=2*Pi*f) ansieht, ist man mitten drin in
der Wechselstromlehre bzw. beim Frequenzgang.
Möchte man die Gesamt-Impedanz Z eines Netzwerkes für verschiedene
(Kreis-)Frequenzen wissen, z.B. den eines Reihenschwingkreises aus
R,L und C, so ist Z=R+j*x*L+(1/(j*x*C))
Die Ortskurve ist eine Gerade zur Imaginär-Achse mit dem Abstand R.
Der Phasenverlauf ist S-förmig von -90° nach +90°, der Verlauf des
Betrages von Z ist parabelähnlich.
Läßt man sich die Funktion 1/Z ausrechnen und anzeigen, erhält man
als Ortskurve einen Kreis, der Phasen- und der Betragsverlauf sieht
auch ganz hübsch aus.
Der bekannteste Kreis dürfte wohl der Einheitskreis sein, ihn erhält
man durch "WERTE 1 0 6.3 e^(j*x)" [Befehle und deren Syntax siehe
unten] und anschließendem "ZEIGE ORTSK".
Bedingt durch den Auflösungsmodus (640*256) sieht er allerdings aus
wie ein Einheits-Ei !
Hat man jetzt andere Funktionen z.B. 1/(1+j*x) und will sich die
Ortskurve für x von 0 bis 500 zeigen lassen, gibt es ein Problem:
Mit WERTE berechnet ist die angezeigte Ortskurve FALSCH !
Das kommt daher, daß die Parametrierung der Ortskurve i.a.
LOGARITHMISCH ist.
Deshalb : JEDE ORTSKURVE MIT "WERTELOG" BERECHNEN !!
(Außer so einfache Sachen wie Einheitskreis oder 4-x*i)
BEWÄHRT hat sich dann ein Wertebereich von 0.01 bis 500
( Null geht beim Logarithmus nicht )
Also z.B. WERTELOG 1 0.01 500 1/(1+j*x)
und anschließendem ZEIGE ORTSK
Für Regelungstechniker :
Man kann sich dann Amplitudengang und Phasengang von Funktionen
wunderbar im BODE-DIAGRAMM anzeigen lassen.
Amplitudengang mit "ZEIGELOG BETRAG" doppeltlogarithmisch und
Phasengang mit "ZEIGE PHASE" einfachlogarithmisch.
Die Datei "Fupl.bsp2"(s.u.) zeigt ein bißchen was über Ortskurven .
4.3 Die Befehle
---------------
1. Übersicht :
Klammerbedeutungen wie bei SHELL/CLI:
<Ausdruck> bedeutet "Ausdruck" MUß angegeben werden
<Betrag|Phase> Nur EINES der beiden MUß angegeben werden
[TabNr] TabNr KANN angegeben werden, ist aber NICHT NOTWENDIG
[<A> <B>] "A" und "B" KÖNNEN angegeben werden, brauchen aber
nicht. Angabe NUR EINES Wertes ist NICHT ERLAUBT !
-DEF <Variable> <Ausdruck>
-DIFF <TabNr1> <TabNr2>
-DRUCKE
-ENDE
-INFO
-INT <TabNr1> <TabNr2>
-LIES
-LISTE
-LÖSCHE
-NULL <Startwert> <Funktion>
-TAUSCHE
-WERTE/WERTELOG <TabellenNr> <XMin> <XMax> <Funktion>
-ZEIGE/ZEIGELOG [TabNr] <REAL|IMAG|BETRAG|PHASE|ORTSK> [<YMin> <YMax>]
2.Beschreibung : ( in "logischer" Reihenfolge )
---------------------------------------------------------------------
| DEF Variablen definieren |
---------------------------------------------------------------------
Syntax: DEF <Variable> <Ausdruck>
Beschreibung: Der Befehl definiert Variablen mit dem Inhalt des
nachfolgenden Ausdruckes und trägt sie dann in die
Variablenliste ein (!LISTE).
Diese Variablenliste existiert nur solange das Pro-
gramm läuft, d.h., bei jedem Programmstart wird sie
neu eingerichtet und hat somit (k)einen Inhalt;
wenn man FUPL verläßt, gibt es auch die Liste nicht
mehr.
Der einzige Eintrag nach dem Programstart ist
x : lauf ; x ist also die Laufvariable.
Die Variablen dürfen aus Buchstaben und Zahlen bestehen
Es ist auch möglich im "Ausdruck" noch nicht definierte
Variablen anzugeben, FUPL trägt diese selbständig in
die Variablenliste ein und weist ihnen den Wert 0 zu.
Beispiele: DEF Alpha 45.7 ; Definiert eine Variable namens Alpha
und gibt ihr den Inhalt 45.7 .
DEF g1 2*x-Alpha ; Definiert eine Variable g1 und weist
ihr die Funktion 2*x-Alpha zu .
DEF t lauf ; Für die Leute, die gerne eine andere Lauf-
variable haben möchten: Definiert t als
neue Laufvariable, aber x bleibt auch
weiterhin solange Laufvariable, bis es
überdefiniert wird.
---------------------------------------------------------------------
| WERTE Baut eine lineare Wertetabelle auf |
---------------------------------------------------------------------
Syntax: WERTE <TabellenNr> <XMin> <XMax> <Funktion>
Beschreibung: Es wird eine Funktion berechnet im Intervall von XMin
bis XMax und in Form einer Wertetabelle gespeichert.
Diese kann man sich dann in verschiedenen Darstellung-
arten ausgeben lassen (!ZEIGE/ZEIGELOG), differenzie-
ren (!DIF) oder integrieren (!INT).
Zur Verfügung stehen bis zu 9 Wertetabellen.
"Funktion" kann explizit angegeben werden, kann aber
auch eine zuvor definierte (Funktions)Variable sein.
Beispiele: WERTE 1 -6 9 sin(x) ; Berechnet sin(x) von -6 bis 9
und schreibt die Werte in Tabel-
le Nummer 1.
WERTE 3 0 11 h ; Berechnet die (hoffentlich) in der
Variablenliste definierte Funktion h
zwischen 0 und 11 und schreibt die
Werte in Tabelle 3.
Falls h eine Konstante ist, erhält man
eine Gerade parallel zur X-Achse im
Intervall von 0 bis 11.
WERTE 2 0 89 5+x*i ; Berechnet die Ortskurve 5+x*i für
die X-Werte von 0 bis 89 und
schreibt die Werte in Tabelle 3.
Diese Ortskurve ist eine Gerade
im I.Quadranten parallel zur Ima-
ginär-Achse mit dem Abstand 5.
Bemerkung: Je komplizierter die Ausdrücke sind und je öfter das
x als Variable auftaucht, desto länger dauert die
Berechnung !
Also nicht wundern, wenn (x^3-sin(x))/(A*ln(Beta)) mit
A=x^2-5*x+3 und Beta=(tan(11*x+5))/(cos(9.9*x)-5.6*x)
nicht innerhalb von 2 Sekunden berechnet werden kann!
Da die spätere X-Achsenbeschriftung 4-stellig ist,
beschränkt sich der sinnvolle Wertebereich auf ±10000.
---------------------------------------------------------------------
| WERTELOG Baut logarithmisch geteilte Wertetabellen auf |
---------------------------------------------------------------------
Syntax: WERTELOG <TabellenNr> <XMin> <XMax> <Funktion>
Beschreibung: Dieser Befehl macht das gleiche wie !WERTE, nur wird
das Intervall zwischen XMin und XMax logarithmisch
aufgeteilt, wie man es vom logarithmischen Zeichenpa-
pier kennt.
Bei Ortskurven, also komplexen Funktionen, sollte man
immer einen logarithmisch geteilten Definitionsbereich
für das X wählen, sonst kann es vorkommen, daß der
Graph nicht so gezeichnent wird, wie er eigentlich
aussehen soll !
TIP : Es hat sich ein Wertebereich von XMin=0.01 bis
XMax=500 bewährt.
XMin und XMax müssen beide GRÖßER als NULL sein !!
Man kann also als untere Grenze niemals 0 einsetzen,
sondern muß dann eben 0.01 oder 0.001 wählen !
Ebenso sind als Grenzen keine Exponentiellen zuge-
lassen, also 10^3 oder 1E-2 geht nicht ! Es muß
1000 und 0.01 geschrieben werden.
Der Wertebereich XMin bis XMax ist auf den Faktor 10^5
beschränkt, d.h., von 0.001 bis 100 oder von 0.1 bis
10000.
Beispiele: WERTELOG 4 0.1 10 ln(x) ; Berechnet die Funktion ln(x)
im Bereich 0.1 bis 10 bei
logar. X-Achsenteilung in
die Tabelle 4.
Ergibt bei einfacher Ausgabe
(!ZEIGE) eine Gerade.
WERTELOG 2 0.01 500 1/(1+x*i) ; Berechnet die Werte
der komplexen Funktion
1/z mit z=1+xi. Die
Ortskurve ist ein
Halbkreis im IV. Qua-
dranten.
---------------------------------------------------------------------
| ZEIGE Zeichnet die Funktionsgraphen |
---------------------------------------------------------------------
Syntax: ZEIGE [TabNr] <REAL|IMAG|BETRAG|PHASE|ORTSK> [<YMin> <YMax>]
Beschreibung: Hier kommen wir nun endlich zum Zeichnen unserer Funk-
tionen.
Wie man sieht, gibt es 5 verschiedene Darstellungsar-
ten:
REAL : Die "normale" Ausgabe der Graphen, wie man sie
immer ins Schulheft zeichnet.
Es gibt eine X-Achse und eine Y-Achse und in
dieses Koordinatensystem wird (werden) die Funk-
tion(en) - wie z.B. sin(x) - eingezeichnet.
Bei Ortskurven (die mit dem i/j) wird hier der
Realteil in Abhängigkeit von x ausgegeben
(deshalb der Name).
IMAG : NUR für Ortskurven !
Hier wird der Imaginärteil in Abhängigkeit von
x gezeichnet.
BETRAG: Gibt den Betrag einer Funktion |f(x)| oder
einer Ortskurve |z| aus.
PHASE : NUR für Ortskurven !
Hier wird der Phasengang gezeichnet und zwar
im Y-Intervall von -180° bis +180°.
(also nicht 0°-360°)
ORTSK : NUR für Ortskurven (logisch) !
Gibt die Funktion(en) in der komplexen Ebene
aus. Koordinatensystem aus Re{z} und Im{z}.
[TabNr] ist die Nummer der Tabelle, die gezeichnet wer-
den soll (ZEIGE 2 ...): Gibt Tabelle 2 aus.
Es können auch mehrere Nummern angegeben werden ( ZEIGE
156 ...): Zeichnet die Tabellen 1,5 und 6.
Die Angabe von TabNr ist optional, d.h., sie kann weg-
gelassen werden. FUPL zeichnet dann eben alle belegten
Wertetabellen !
! ACHTUNG !, das stimmt so nicht ganz:
FUPL ist so programmiert, daß er maximal 4 der 9 Werte-
tabellen ausgibt ( wir finden, daß mehr zu unübersicht-
lich wirken ), das bedeutet: Wird TabNr weggelassen,
werden die ersten 4 belegten Tabellen ausgegeben.
Gibt es nur eine, wird auch nur eine ausgegeben.
Gibt man als TabNr 23456 an, werden nur die Tabellen 2,
3,4,5 gezeichnet.
! Wichtig ! :
Der Bereich auf der X-Achse, in dem die Funktionen
gezeichnet werden sollen, richtet sich nach der 1.
Tabelle, die ausgegeben werden soll !
D.h., hat im obigen Bsp. Tabelle 2 die Werte XMin=-8
und XMax=9, werden auch alle anderen Tabellen 3,4,5
in diesem Intervall gezeichnet.
Außerdem richtet sich nach dieser Tabelle auch die
X-Achsenteilung, linear oder logarithmisch, die ausge-
geben wird:
Im obigen Bsp. ist Tabelle 2 linear aufgebaut, also
"normal" mit WERTE berechnet (da XMin negativ), so daß
3,4,5 nur gezeichnet werden, wenn sie auch mit WERTE
berechnet wurden. Hat Tabelle 5 z.B. eine logarithmi-
sche X-Achsenteilung, wird sie nicht ausgegeben.
Bei PHASE und ORTSK spielt die Achsenteilung keine
Rolle.
Will man in einem anderen Intervall zeichnen, muß man
die erste belegte Tabelle mit der entsprechenden ande-
ren Tabelle vertauschen (!TAUSCHE).
Der Ausdruck [<YMin> <YMax>] beschreibt den zu zeich-
nenden Wertebereich der Y-Achse und ist auch optional,
wird er nicht angegeben, sucht sich FUPL die Y-Ausdeh-
nung aus der ersten zu zeichnenden Tabelle.
Beispiele: ZEIGE 2 Real -10 10 ; Zeichnet die Funktion aus Tabelle
2 zwischen YMin=-10 und YMax=10.
ZEIGE Real ; Zeichnet die ersten 4 belegten Wertetabel-
len; X- und Y-Ausdehnung richten sich nach
der ersten belegten Tabelle.
ZEIGE 23 Ortsk ; Zeichnet die Ortskurven aus Tabelle 2
und 3; X- und Y-Ausdehnung richten
sich nach Tabelle 2.
Bemerkung: Werden die Graphen z.B. im Y-Intervall von 5 bis 18
ausgegeben, wird die X-Achse auf Höhe der 5 gezeichnet.
Ebenso verhält es sich umgekehrt.
Das bedeutet, daß der Schnittpunkt der Achsen nicht
immer (aber immer öfter !) mit dem Ursprung identisch
sein muß !
Da die Y-Achsenbeschriftung 5-stellig ist, beschränkt
sich der sinnvolle Wertebereich auf ±100000.
Ein Mausklick in das Fenster, und es wird geschlossen.
---------------------------------------------------------------------
| ZEIGELOG Zeichnet Funktionsgraphen mit logar. Y-Teilung |
---------------------------------------------------------------------
Syntax:
ZEIGELOG [TabNr] <REAL|IMAG|BETRAG|PHASE|ORTSK> [<YMin> <YMax>]
Beschreibung: Hier werden die Graphen mit logarithmischer Y-Achsen-
teilung gezeichnet.
Die Darstellungsarten und die Syntax ist dieselbe wie
bei ZEIGE !
Beispiele: ZEIGELOG 8 Betrag 0.1 100 ;
Bemerkung: Bei Angabe von YMin, YMax müssen beide größer als Null
sein, Ymin=-20 oder 0 geht nicht !
Der Y-Wertebereich der Funktionen spielt keine Rolle,
die Graphen werden eben nur im positiven Y-Bereich
gezeichnet.
Der Anzeigebereich ist auf den Faktor von 10^4
beschränkt, also z.B. von 0.01 bis 100 oder von 1
bis 10000.
Mausklick » Fenster zu
---------------------------------------------------------------------
| DIFF Bildet die Ableitung einer Funktion |
---------------------------------------------------------------------
Syntax : DIFF <TabNr1> <TabNr2>
Beschreibung: Dieser Befehl nimmt die Werte einer Funktion aus Tabel-
le Nr.1, differentiert sie (leitet sie ab) und schreibt
die neuen Werte in Tabelle Nr.2 .
Beispiele: DIFF 2 3 ; Nimmt die Werte aus Tabelle 2, differentiert
sie und schreibt sie in Tabelle 3.
Stehen z.B. in Tabelle 2 die Werte für
SIN(X), dann stehen hinterher in Tabelle 3
die Werte von COS(X), natürlich mit densel-
ben Werten XMin und XMax.
DIFF 4 1 ; Differentiert Wertetabelle 4 in die Tabelle 1
Bemerkung: Differentiation in dieselbe Tabelle, also DIF 2 2, geht
nicht !
Bedingt durch die Rechenungenauigkeit empfiehlt es sich
nicht allzuoft zu differentieren ( 3-4 mal geht noch ).
Spätestens beim achten mal ist der Funktion ein hübsches
"Rauschen" überlagert.
Ortskurven lassen sich nicht differenzieren, wer es
dennoch versucht, wird nur den differenzierten Realteil
in der Zieltabelle vorfinden.
---------------------------------------------------------------------
| INT Bildet die Integralfunktion |
---------------------------------------------------------------------
Syntax : INT <TabNr1> <TabNr2>
Beschreibung: Dieser Befehl nimmt die Werte einer Funktion aus Tabel-
le Nr.1, integriert sie (bildet eine Stammfunktion) und
schreibt die neuen Werte in Tabelle Nr.2 .
Beispiele: INT 3 2 ; Nimmt die Werte aus Tabelle 3, integriert sie
und schreibt sie in Tabelle 2.
Stehen z.B. in Tabelle 3 die Werte für
2*X, dann stehen hinterher in Tabelle 2 die
Werte von X^2+C, natürlich mit denselben
Werten XMin und XMax; C=Konstante.
Bemerkung: Die Bedingung, wonach eine Funktion f unendlich viele
Stammfunktionen F(x)+c besitzt, bewirkt leider, daß
eine Funktion/Wertetabelle sinnvoll nur einmal inte-
griert werden kann, denn der von mir programmierte
Algorithmus, der sich an die grafische Integration
anlehnt, kann diese Konstante c nicht Null setzen, so
daß aus
1.Integration 2.Integration
SIN(x) -COS(x)+c -SIN(x)+c*x+k wird !
c,k = Konstante
Ortskurven lassen sich nicht integrieren, wer es den-
noch versucht, s.o. ...
---------------------------------------------------------------------
| NULL Berechnet Nullstellen von Funktionen |
---------------------------------------------------------------------
Syntax : NULL <Startwert> <Funktion>
Beschreibung: Hier kann man sich Nullstellen von Funktionen ausrech-
nen lassen, wobei entweder die Funktion selbst hinge-
schrieben wird oder eine Variable, die als Funktion de-
finiert ist.
Ein Startwert muß angegeben werden, denn woher soll
FUPL wissen, ob man eine Nullstelle von SIN(X) bei -21
oder in der Nähe von 9 sucht.
Hat eine Funktion nur eine einzige Nullstelle, ist der
Startwert egal, muß aber dennoch angegeben werden !
Beispiele: NULL 4 sin(x) ; Berechnet die Nullstelle von sin(x) in
der Nähe von 4; Ergebnis 3.141593
NULL 20 x^2-3 ; Berechnet die Nullstelle von x^2-3 aus-
gehend von 20; Ergebnis 1.732051
Bemerkung: Es gibt folgende Ergebnismeldungen:
'Es gibt eine Nullstelle:' ; alles O.K.
'Verfahren divergiert' ; FUPL kann die Nullstelle nicht
finden oder die Funktion hat
gar keine.
'Division durch Null' bzw.
'Fehler bei Berechnung' ; Es traten bei der Berechnung
Fehler auf.
Anderen Startwert probieren.
Es kann vorkommen, daß bei asymptotisch gegen die X-
Achse verlaufenden Funktionen eine Nullstelle ermittelt
wird, obwohl es dort keine gibt !
( Für e^x berechnet FUPL eine bei -44.38487 )
Tut mir leid, läßt sich aber nicht ändern, wenn FUPL
andererseits Nullstellen erkennen soll, wo die X-Achse
nur berührt aber nicht geschnitten wird.
( Stichwort: relatives Maximum/Minimum)
---------------------------------------------------------------------
| DRUCKE Druckt die Wertetabellen |
---------------------------------------------------------------------
Syntax : DRUCKE
Beschreibung: Es erscheint ein Requester, in dem man einige Einstel-
lungen vornehmen kann:
1. Tabellennummer
2. Anzahl der zu druckenden Werte-Paare;
-100 gedruckt in 50 Zeilen
- 76 » 38 Zeilen
- 50 » 25 Zeilen
- 30 » 15 Zeilen
3. Darstellungsart (Real,Imag,...)
wie aus ZEIGE bekannt!
4.DRUCKEN : Beginnt Druckvorgang
5.ABBRUCH : Zurück zum "FUPL>"
Bemerkungen: Durch Anklicken der Gadgets kann man die Einstellungen
verändern.
Ausgedruckt wird zweispaltig, wobei in jeder Spalte
links der X-Wert steht und rechts der Y-Wert in der ge-
wählten Darstellung (Real,Betrag,...).
Bei ORTSK werden zwei Y-Werte ausgedruckt, erst der
Realteil, dann der Imaginärteil mit voranstehendem j .
Fupl's Tabellen bestehen aus 310 Elementen, das bedeu-
tet: wählt man die Anzahl der zu druckenden Wertepaare
zu 100, wird eben jedes dritte Element gedruckt, bei 50
jedes sechste, usw.
Es werden die Workbench-Druckertreiber benutzt, das be-
deutet, auf der Diskette, von der Du gebootet hast, muß
der in den Preferences eingestellte Drucker vorhanden
sein. Im Zweifelsfall erst mit der Workbench booten und
dann erst FUPL starten.
Der Drucker muß selbstverständlich eingeschaltet sein !
Dann kann man z.B. folgenden Ausdruck bewundern:
{30 Werte für COS(x) von 0 bis 6}
FUPL.print Tabelle 1
X Real X Real
0.18290 0.98332 3.23129 -0.99598
0.38613 0.92637 3.43452 -0.95740
0.58936 0.83130 3.63774 -0.87942
· · · ·
· · · ·
---------------------------------------------------------------------
| LISTE Gibt die Variablenliste aus |
---------------------------------------------------------------------
Syntax : LISTE
Beschreibung: Liste gibt die Variablenliste mit den dort definierten
Ausdrücken aus.
Bemerkung: Wie oben schon erwähnt (!DEF), existiert nach dem Pro-
grammstart nur der Eintrag 'X: Lauf' .
ACHTUNG: Alle Funktionen werden in UPN-Form eingetragen,
weil FUPL intern nur in dieser Form rechnen kann !
So wird aus 'DEF A 5*X' A: 5 X *
PROBLEM: Das führt dazu, daß wohl die meisten FUPL-User
die längeren Funktionsausdrücke in der Variablenliste
zwar nicht mehr entziffern können, aber dennoch bei
mehreren definierten Funktionen A,B,C,.. ungefähr wis-
sen, welches Kürzel für welchen Ausdruck steht !(Sorry)
UPN : "Umgekehrt Polnische Notation"
( Fragt mich nicht, warum "polnisch" )
---------------------------------------------------------------------
| LÖSCHE Löscht eine Wertetabelle |
---------------------------------------------------------------------
Syntax : LÖSCHE <TabelleNr>
Beschreibung: Löscht die Tabelle mit der angegebenen Nummer.
Beispiel: LÖSCHE 3 ; Löscht Tabelle Nummer 3
---------------------------------------------------------------------
| TAUSCHE Vertauscht die Nummern zweier Tabellen |
---------------------------------------------------------------------
Syntax: TAUSCHE <TabelleNr1> <TabelleNr2>
Beschreibung: Die Nummern (und damit die Reihenfolge) zweier Werteta-
bellen werden vertauscht.
Beispiele: TAUSCHE 2 6 ; Schreibt den Inhalt von Tabelle 2 in die
Tabelle mit der Nr 6 und deren Inhalt in
die Tabelle 2
Bemerkung: Wenn FUPL mehrere Tabellen zeichnen soll, richtet sich
der Wertebereich der X-Achse, der dargestellt wird,
nach der ersten belegten Tabelle (!ZEIGE).
Will man nun die Tabellen 1,4,5 zeichnen lassen und
zwar in der X-Ausdehnung von Tabelle 5 und nicht in der
von Tabelle 1, muß man die Tabellennummern 1 und 5
vertauschen.
---------------------------------------------------------------------
| LIES Einlesen einer Befehlsdatei |
---------------------------------------------------------------------
Syntax : LIES
Beschreibung: Der Befehl verlangt anschließend den Namen (incl. Pfad-
angabe) einer Textdatei, die sich zeilenweise aus An-
weisungen für FUPL zusammensetzt, so ist es möglich,
Anweisungen, die man immer wieder eingeben will, nur
einmal in eine Datei zu schreiben, die man dann nur
noch aufzurufen braucht.
Beispiele: siehe die beiden Dateien Fupl.bsp1 und Fupl.bsp2
Bemerkung: Diese Datei kann mit jedem beliebigen Editor erstellt
worden sein (z.B. ED von der Workbench ), der KEINE
Steuerzeichen verwendet !
Die einzelnen Zeilen müssen selbstverständlich der
Befehlssyntax von FUPL entsprechen.
FUPL schreibt jeweils eine Befehlszeile auf den Bild-
schirm.
Will man, daß diese ausgeführt wird, muß man nur
irgendeine Taste drücken.
Wenn man den Lesevorgang abrechen will, muß man die
ESC-Taste drücken, die dargestellte Befehlszeile wird
dann NICHT mehr ausgeführt.
Als Zeichen, daß man sich im Lese-Modus befindet, steht
am Anfang jeder Zeile LFUPL> anstatt wie sonst FUPL> .
---------------------------------------------------------------------
| INFO Copyright-Fenster |
---------------------------------------------------------------------
Syntax : INFO
Beschreibung: Gibt ein Informationsfenster mit Copyright, Versions-
nummer und unseren Namen sowie Adressen aus.
Mit einem Mausklick schließt man es wieder.
---------------------------------------------------------------------
| ENDE Beendet FUPL |
---------------------------------------------------------------------
Syntax : ENDE
Beschreibung: Beendet das Program.
Das Schließgadget funktioniert aber auch !
4.4 Einarbeitung anhand 'Fupl.bsp'
----------------------------------
I. Fupl.bsp1
Zuerst starte man Fupl durch ein Doppelklick auf sein Icon.
Sobald "FUPL>" erscheint gebe man "LIES" ein.
(Schreibweise ist egal aber natürlich ohne Anführungszeichen;
dasselbe gilt auch für alles Folgende)
Nun gebe man hinter der Aufforderung "den Dateinamen bitte" den
gesamten Pfad samt Namen von Fupl.bsp1 ein.
FUPL fragt solange nach dem Dateinamen, bis er ihn unter dem angege-
benen Pfad gefunden hat, oder bis man "e" (steht für ende) eingibt.
Die beiden Dateien Fupl.bsp1 und Fupl.bsp2 sind im Lieferumfang von
FUPL V1.0d enthalten und müßten in demselben Verzeichnis stehen wie
das Hauptprogram.
Anschließend erscheint folgende Zeile (wenn Datei gefunden):
WERTE 1 -6 6 SIN(X) Wir berechnen als erstes mal den Sinus, also
Taste (z.B. Leertaste) drücken
ZEIGE REAL Tastendruck und wir sehen die Funktion, linke
Maustaste schließt FUPL-Graph, jetzt steht da
ZEIGE BETRAG Taste und der |SIN(X)| erscheint.. »linke MT
DIFF 1 2 Wir differenzieren Tabelle 1, also müßte in Tabelle
2 jetzt der COS(X) stehen, Überprüfung
ZEIGE REAL Stimmt, Tabelle 2 ist der Cosinus. »linke MT
DEF F1 (X^2)-2 Wir definieren eine Funktion F1
NULL -8 F1 und berechnen eine Nullstelle der Funktion;
Wir überprüfen das Ergebnis durch
WERTE 3 -4 4 F1 Berechnen der Funktion und anschließendem
ZEIGE 3 REAL Zeichnen. Man sieht 2 Nullstellen bei +-1.4 »li MT
INT 3 4 Wir integrieren F1 {von Hand: (1/3)*x^3-2*x+K } und
ZEIGE 34 REAL schauen uns F1 und die neue Funktion an. Wir sehen
nicht viel von Tab2, denn der Y-Bereich,der durch
Tab3 (=F1) bestimmt wird, geht nur bis 16 . »li MT
ZEIGE 34 REAL -3 25 Anderer Wertebereich versucht und man sieht,daß
das K ungefähr 13.6 und nicht Null ist! »li MT
TAUSCHE 1 3 F1 in Tab1 geschrieben bestimmt Wertebereiche von
ZEIGE REAL allen vier auszugebenen Funktionen »li MT
WERTELOG 5 0.1 100 LOG(X) Berechnet Log(x) mit logarithm. X-Achse
ZEIGE 5 REAL Ergibt also eine Gerade »li MT
ZEIGELOG 5 REAL Nun mal doppelt logarithmisch ausgegeben »li MT
WERTE 6 -4 3 E^X letzte Funktion, die wir berechnen die e-Funktion:
ZEIGE 6 REAL Kontrolle, sie ist es wirklich »li MT
ZEIGELOG 6 REAL Nun machen wir wieder eine Gerade draus »li MT
5*1.5+100 Wir benutzen FUPL als Taschenrechner
DRUCKE und schauen uns als letztes den Druck-Requester an!
ist der Drucker eingeschaltet, kannst Du ja einen
Ausdruck z.B. von 30 Werten probieren, ansonsten
ABBRUCH anklicken !
Soweit unsere erste Beispieldatei, probiert ruhig noch etwas herum.
Pfeil hoch/runter zeigt die bisher eingegebenen Befehlszeilen an,
diese sind mit Pfeil links/rechts edierbar !
II. Fupl.bsp2
Hier nun eine Beispieldatei für komplexe Funktionen:
Wir lassen uns versetzen in die Welt der Elektrotechnik, wo das j
die komplexe Zahl beschreibt (anstatt i) und die Kreisfrequenz w die
alles bestimmende Zahl ist, somit lautet die erste Zeile:
DEF w LAUF Wir definieren w als Laufvariable
WERTE 1 0 6.3 e^(j*w) und berechnen 'mal den Einheitskreis.
ZEIGE ORTSK Hier ist er als Ortskurve dargestellt und
ZEIGE PHASE hier der Winkel zwischen RE- und IM-Teil
DEF R 1.5 Wir definieren einen Widerstand von 1.5 Ohm,
DEF L 0.21 eine Induktivität von 210 mH und als Funktion
DEF Z R+j*w*L Z die Impedanz der Reihenschaltung aus R,L.
WERTE 2 0 30 Z Wir berechnen Z für 0< w <30 und schauen uns
ZEIGE 2 ORTSK 0.3 6.3 das Ergebnis in der komplexen Ebene an.
Man sieht, daß für w=0 die Impedanz rein
reell ist (Z=R=1.5 Ohm), und für wachsendes w
ein Blindanteil (komplex) dazukommt.
WERTELOG 3 0.01 500 1/(Z) Nun berechnen wir die Umkehrfunktion 1/Z,
auch Admittanz genannt, und sehen, daß sie
ZEIGE 3 ORTSK -0.5 0 in der komplexen Ebene ein Halbkreis ist.
ZEIGELOG 3 BETRAG 0.006 0.9 Zeig uns deinen Betrag (doppelt-log.)
ZEIGE 3 PHASE und den Phasenverlauf. Regelungstech-
nisch beschreibt 1/Z also ein PT1-
System ( 1 Energiespeicher) bzw. einen
Tiefpaß.
WERTELOG 4 0.01 500 2/(1-0.25*w^2+j*0.2*w) Diese Funktion beschreibt
ein PT2-System ( 2 Ener-
ZEIGE 4 ORTSK giespeicher) und ist somit schwingfähig
ZEIGELOG 4 BETRAG 0.01 7 Die Resonanzkreisfrequenz liegt bei w=2
ZEIGE 4 PHASE dort ist die Phasenverschiebung -90°.
O.K., die Funktionen in Tabelle 3 und 4 und deren Darstellung im
BODE-Diagramm bestehend aus Amplitudengang und Phasengang ist Stu-
denten-Wissen und für die meisten von Euch sicherlich zu abgehoben,
aber ein bißchen angeben sei uns hier mal erlaubt !
So, damit soll es an Beispielen genug sein !
Wir hoffen, Euch damit einen Eindruck vermittelt zu haben, was mit
FUPL alles möglich ist, nun liegt es an Euch, ob und wie Ihr dieses
Programm benutzt.
5.Ärger mit FUPL
----------------
Vielleicht passiert es manchmal, daß FUPL nicht das macht, was man
will, obwohl man es so macht, wie man soll !
Deshalb ein paar Tips zu möglichen Fehlern:
- Program läßt sich nicht starten
· Zu wenig Speicher, man sollte ca. 350KB zur Verfügung haben
· Zu kleiner Stack ( nur beim CLI-Start ), vor dem FUPL-Start erst
den Befehl "STACK 7000" eingeben
- Graph sieht völlig anders aus als erwartet
· Überprüfe auf richtige Schreibweise der Funktion beim WERTE-
Befehl, ggf. Brüche,Potenzen in Klammern setzen.
Folgt nach einer trigonometrischen (=Winkel-) Funktion ein '*'
oder '/' muß diese in Klammern eingeschlossen werden :
Bsp.: (SIN(x))*8 ; (TANH(2*x))/5
· Vielleicht zu oft differenziert oder integriert (siehe DIFF,INT)
- Obwohl FUPL in der oberen Leiste angibt, daß Tabelle 1,2,5,..
angezeigt werden, sind nicht alle als Graphen zu sehen
· Es werden maximal 4 Graphen gleichzeitig gezeichnet
· Mehrere Funktionen sind identisch und wurden somit übergemalt
· Nicht alle Funktionen müssen in dem angezeigten Bereich liegen,
wie er von der ersten belegten Wertetabelle bestimmt wird, ggf.
größeren Y-Bereich bei ZEIGE angeben (-200 bis 200 zum Test)
Man sieht, FUPL kann eine ganze Menge, und ist, was komplexe Funkti-
onen angeht, zur Zeit wohl unschlagbar, aber das heißt selbstver-
ständlich nicht, daß FUPL alle Eigenschaften enthält, die man sich
nur wünschen kann.
Es gibt also noch einiges, was man implementieren könnte.
( wozu gibt es Updates )
Also, für Anregungen, Fehler-Beschreibungen (nobody is perfect),
seelischer und finanzieller Unterstützung sind wir sehr dankbar !
Obwohl FUPL nach bestem Wissen und Gewissen erstellt wurde,
übernehmen wir keine Verantwortung oder Haftung für Schäden, die
mittelbar oder unmittelbar durch das Arbeiten mit FUPL entstehen.
( Das schreibt jeder in seine Anleitungen, also wir auch.)
Martin Rappold Ingo Teckenburg
Wilhelm-Bluhm-Str.8 Bugenhagenstr.11
D-3000 Hannover 91 D-3000 Hannover 1
************************ FUPL.dok ***** © 07/92 (Ingo) **************